<?php

namespace utils;

use ZipArchive;

class zip
{
    //根据传入的带有name、url的数据体，返回压缩包的oss链接地址
    public static function get_url($data){
        $time=time().random_int(1,999);
        $date=date('Y-m-d');

        $dir=$_SERVER["DOCUMENT_ROOT"].'/img/'.$time.'/';
        if (!is_dir($dir)) {
            mkdir($dir, 0777, true);
        }
        $zip_dir=$_SERVER["DOCUMENT_ROOT"].'/img/zip/'.$time.'.zip';

        for($i=0;$i<count($data);$i++){
            $info=pathinfo($data[$i]['url']);
            $file_type=$info['extension'];
            $file_name=$data[$i]['name'].'.'.$file_type;

            $path=$dir.$file_name;
            $file=file_get_contents($data[$i]['url']);

            $handle = fopen($path, "w+");
            fwrite($handle, $file);
            fclose($handle);

        }

// 创建压缩包
        $zip = new ZipArchive();
        if ($zip->open($zip_dir, ZipArchive::CREATE | ZipArchive::OVERWRITE)) {
            // 添加文件到压缩包
            $files = scandir($dir);
            foreach ($files as $file) {
                if ($file === '.' || $file === '..') {
                    continue;
                }
                $zip->addFile($dir . '/' . $file, $file);
            }
            $zip->close();
            foreach ($files as $file) {
                if ($file === '.' || $file === '..') {
                    continue;
                }
                unlink($dir . '/' . $file);
            }
            rmdir($dir);

            $res=oss::upload("zip/$date/".$time.'.zip',$zip_dir);
           // unlink($zip_dir);
            if(isset($res['info'])&&isset($res['info']['url'])){
                return $res["info"]["url"];
            }else{
                return '';
            }
        } else {
            return '';
        }
    }
}